FIG. 1 shows a system which comprises distributed processing system 80 and monitor 60. Distributed processing system 80 is comprised of processors 20 and 30 which interact independently with users to generate activity in the form of events. Processors 20 and 30 of distributed processing system 80 communicate with each other over communications link 40 and distributed processing system 80 interacts, in turn, with monitor 60 by means of a connection between monitor 60 and processor 30 over communications link 50. Monitor 60 is an independent processing system which monitors the activity generated by users of distributed processing system 80, i.e., the activity generated by users which interact with processor 20 and the activity generated by users which interact with processor 30. Further, monitor 60 responds to this activity by taking action such as, for example, by supplying information to users from a data base which is connected with monitor 60.
FIG. 2 shows a system which comprises distributed processing system 90, monitor 60, and communications link 70. Communications link 70 facilitates interaction between processor 20 and monitor 60.
As shown in FIGS. 1 and 2, processors 20 and 30 are independent processors and they are connected to each other by means of communications links in order to form distributed processing systems 80 and 90, respectively, which are, for example, private business exchanges (PBX) o As such, processors 20 and 30 independently generate activity status messages pertaining to user activity associated therewith that are sent to monitor 60, for example, an external processor. In order for processor 20 to transmit an activity status message to monitor 60 in the system shown in FIG. 1, processor 20 is required to first transmit the activity status message to processor 30 where it is, in turn, relayed to monitor 60. In order for processor 20 to transmit an activity status message to monitor 60 in the system shown in FIG. 2, however, processor 20 transmits the activity status message directly to monitor 60.
Monitor 60 tracks the relative sequence of activity status messages generated by processors 20 and 30 in order to perform its duty, for example, of supplying centrally maintained data to certain users of the distributed processing systems. However, as has been explained above, since processors 20 and 30 act independently, the order in which activity status messages are received by monitor 60 may be different from the order in which they are generated in the distributed processing systems.
A problem which arises in the centralized monitoring of activity generated by a distributed processing system can best be understood in the context of a simple example. Consider the arrangement shown in FIG. 1 and assume that distributed processing system 80 comprises a computerized private branch exchange (CBX) and that the users represent telephone users. Further assume that user 100 is connected to processor 20 and that user 100 attempts to call user 110 who is connected to processor 30. Still further assume that: (a) CBX 80 sets up a communications path between user 100 and user 110; (b) for some reason the communications path between user 100 and user 110 is terminated quickly, for example, because user 100 hangs up; and (c) immediately after the termination of the communications path between user 100 and user 110, user 120, who is connected to processor 30, attempts to place a call to user 110. Lastly, assume that in the systems shown in FIGS. 1 and 2, the processor which is connected to a user who initiates an activity contains the most current and accurate user data for the overall call activity status relating to that user and, as a result, that processor transmits activity status messages relating to such activity to monitor 60. As a result, in this example, processor 20 transmits activity status messages relating to user 100 calling user 110. However, as was described above and as can be seen from FIG. 1, activity status messages transmitted by processor 20 must first be transmitted to processor 30 where they are transmitted subsequently by processor 30 to monitor 60. As one can readily appreciate, such a rerouting of messages adds a delay in the transmission of activity status messages from processor 20. Further, in the example described above, processor 30 transmits activity status messages relating to user 120 calling user 110 and such activity status messages will be transmitted from processor 30 directly to monitor 60. As a result, under certain circumstances, activity status messages originating in processors 20 and 30 will be received by monitor 60 out of time sequence with respect to the underlying events which caused them. This result of having activity status messages transmitted to monitor 60 out of time sequence can occur in the system of FIG. 1, for example, as a consequence of the geography of the architecture of distributed processing system 80 or it can be due to the fact that processor 20 may be performing a greater amount of processing than processor 30 is performing at a particular point in time. Further, this result of having activity status messages transmitted to monitor 60 out of time sequence can also occur in the system shown in FIG. 2, for example, as a consequence of other processing that is being performed on processors 20 and 30 or it can be due to inherent variable attributes of various components of communications such as, for example, software buffering, hardware buffering, and/or physical transmission delays.
The receipt of messages by monitor 60 out of time sequence order can cause problems for the overall system. Again, this can best be understood in the context of a simple example. Assume that monitor 60 has access to or maintains a centralized data base system and that monitor 60 retrieves data relating to an incoming call and displays that data on a display device for an agent which receives calls from users. In the example given above, assume that the agent is represented by user 110 and, as a result, the proper sequence of activities should be that the data which is displayed at the terminal for the agent should be data that relates to user 120 since user 100 called the agent, i.e., user 110, and hung up rapidly. However, if the activity status messages which related to the above-described senario were received by monitor 60 out of time sequence, then monitor 60 would display information relating to user 100 while the agent, i.e., user 110, would be speaking over the telephone with user 120. As one can readily appreciate, this is a situation which should be avoided.
As a result of the above, there is a need for a method and apparatus for centralized monitoring of activity in a distributed processing system which permits a monitor to decipher the relative time sequence of events which occur in the distributed processing system.